package comchifaner.util;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * String工具类
 */
public class StringUtil {
	public static boolean isNotEmpty(String str) {
		if (str != null && !"".equals(str.trim())) {
			return true;
		} else {
			return false;
		}

	}

	public static boolean isEmpty(String str) {
		if (str == null || "".equals(str.trim()) || str.length()<=0) {
			return true;
		} else {
			return false;
		}

	}

	/**
	 * 订单号随机数
	 * 
	 * @return
	 */
	public static String generateNumber() {
		String no = "";
		// 初始化备选数组
		int[] defaultNums = new int[10];
		for (int i = 0; i < defaultNums.length; i++) {
			defaultNums[i] = i;
		}
		Random random = new Random();
		int[] nums = new int[5];
		// 默认数组中可以选择的部分长度
		int canBeUsed = 10;
		// 填充目标数组
		for (int i = 0; i < nums.length; i++) {
			// 将随机选取的数字存入目标数组
			int index = random.nextInt(canBeUsed);
			nums[i] = defaultNums[index];
			// 将已用过的数字扔到备选数组最后，并减小可选区域
			swap(index, canBeUsed - 1, defaultNums);
			canBeUsed--;
		}
		if (nums.length > 0) {
			for (int i = 0; i < nums.length; i++) {
				no += nums[i];
			}
		}

		return no;
	}

	private static void swap(int i, int j, int[] nums) {
		int temp = nums[i];
		nums[i] = nums[j];
		nums[j] = temp;
	}

	// 获得域名
	public static String getDomain(String Url) {
		Pattern p = Pattern.compile("(?<=//|)((\\w)+\\.)+\\w+");
		Matcher m = p.matcher(Url);
		if (m.find()) {
			return m.group();
		}
		return Url;
	}

	public static String removeSpecialChart(String str, String... strings) {

		if (StringUtil.isNotEmpty(str) && strings != null) {
			for (int i = 0; i < strings.length; i++) {
				str = str.replace(strings[i], "");
			}
			return str;
		}
		return str;
	}

	public static String[] removeRepeat(String[] arr) {
		List<String> data = new ArrayList<String>();
		for (String s : arr) {
			if (!data.contains(s)) {
				if(isEmpty(s)){
					continue;
				}
				data.add(s);
			}
		}
		String[] ret =data.toArray(new String[data.size()]);
		return ret;
//		return data.toString();
	}
}
